草庐IT

C++:const char * 到 stringstream

全部标签

c++ 使用单行 m.swap(std::stringstream()); 清除字符串流?

我一直在使用下面的代码来清除std::stringstream:m.swap(std::stringstream());代码可能取自thisSOthread.最近我在VisualStudio2013中编译我的代码并收到以下警告:warningC4239:nonstandardextensionused:'argument':conversionfrom'std::basic_stringstream,std::allocator>'to'std::basic_stringstream,std::allocator>&'1>Anon-constreferencemayonlybeboun

c++ - stringstream 内部是如何工作的?

我问的是性能方面的问题。stringstream只是一个字符串/vector,所以写入它可能会导致其整个内容被复制到更大的内存块,还是以更棘手的方式(例如,字符串列表或其他)完成? 最佳答案 27.7.3/1表示basic_ostringstream使用basic_stringbuf。我认为27.7.1.3/8说basic_stringbuf通过重新分配缓冲区来腾出空间,甚至不能保证指数增长(因此分摊O(1)追加)。但我发现标准的流部分非常难以理解,并且始终存在“假设”规则。所以我不能向你保证,在下面使用deque(并在有人请求字符

c++ - 为什么 stringstreams rdbuf() 和 str() 给我不同的输出?

我有这个代码,intmain(){std::stringst;std::stringstreamss;ssstr():"str();std::cout给我这个输出ss.rdbuf()->str():hejhejmeddigss.rdbuf():hejmeddig但这是为什么呢?是因为ostreams对operator 最佳答案 ss.rdbuf()->str();返回所有缓冲区内容的拷贝。在做什么std::cout?查看说明basic_ostream&operator*sb);它从缓冲区逐个字符地读取并将它们写入ostream,直到

c++ - 如何为具有 std::stringstream 成员的类编写复制构造函数?

如果我有这样一个类,我应该怎么写拷贝构造函数?#includeclassMyClass{std::stringstreamstrm;public:MyClass(constMyClass&other){//...}std::stringtoString()const{returnstrm.str();}};std::stringstream本身没有复制构造函数,所以我不能使用这样的初始化列表:MyClass(constMyClass&other):strm(other.strm){} 最佳答案 你可以试试这个:MyClass(con

c++ - 简单但频繁使用 std::stringstream 是否过早悲观?

我有一个简单的场景。我需要将两个C字符串连接成一个std::string。我决定采用以下两种方式之一:方案一voidProcessEvent(charconst*pName){std::stringfullName;fullName.reserve(50);//Ensureminimalreallocationsforsmalleventnames(50isanarbitrarylimit).fullName+="com.domain.events.";fullName+=pName;//UsefullNameasneeded}解决方案2voidProcessEvent(charcon

c++ - stringstream 未在此范围内声明

我在使用stringstream时遇到问题。我的visualstudio和linuxg++都无法理解stingstream。我已经添加了sstream但它没有解决任何问题。我以前用过它,但真的不知道它现在怎么样了?#include#include#include"SymbolTable.cpp"#include"setjmp.h"usingnamespacestd;jmp_buf*bfj;intTOP,SP=3;structtypes{intint_val;floatfloat_val;charchar_val;boolbool_val;};typesDS[6400];intmain(

c++ - std::stringstream 如何处理 operator<< 中的 wchar_t*?

鉴于以下代码段无法编译:std::stringstreamss;ss我也不认为这个会:std::stringstreamss;ss但确实如此(至少在VC++上)。我猜这是由于以下ostream::operator过载:ostream&operator如果我不小心混合了字符类型,这是否有可能悄悄地破坏我的代码? 最佳答案 是的-您需要wstringstream用于wchar_t输出。您可以通过不使用字符串文字来缓解这种情况。如您所述,如果您尝试将constwstring&传递给stringstream,它将无法编译。

c++ - 用 '0' c++ 填充 stringstream 变量的右侧

我有下一个代码:ofstreamdataIndex;dataIndex.open("file");index="2222";std::stringstreamsstr1;sstr1我希望结果:2222100000但只有我明白22221没有零?发生了什么事? 最佳答案 使用std::left左对齐输出#include#include#includeintmain(){std::strings("2222");std::cout输出:222200000 关于c++-用'0'c++填充stri

c++ - 使用匿名 Stringstream 构造字符串

我想用这样的代码直接读入一个字符串:std::stringmyString((std::ostringstream()但是VS2012向我投诉basic_ostream没有str()方法。有没有办法用匿名字符串流做到这一点? 最佳答案 operator对于流返回std::ostream&没有str()成员函数。你需要使用cast。static_cast(std::ostringstream()C++03和C++11使用临时流的区别!C++03但请注意(在C++03中)std::ostringstream()创建一个临时对象,这意味着

c++ - 静态 std::stringstream 的 Clang-tidy 警告

我有以下MCVE:#includestructA{staticstd::stringstreams;};std::stringstreamA::s;intmain(){}当我在此代码上运行clang-tidy6.0.1时,我收到以下警告:static_sstream.cpp:7:22:warning:initializingnon-localvariablewithnon-constexpressiondependingonuninitializednon-localvariable'out'[cppcoreguidelines-interfaces-global-init]std::